home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / CCTX0198.ZIP / VAUPDAT2.ZIP / DECOM.ZIP / DECOM.DOC < prev    next >
Encoding:
Text File  |  1997-08-10  |  11.4 KB  |  316 lines

  1.  
  2.                    DECOM - a generic COM file decryptor
  3.     ───────────────────────────────────────────────────────────────────
  4.        Written and (C)opyright 1990-97 by ROSE Softwareentwicklung,
  5.          Dipl-Ing. (FH) Ralph Roth, Finkenweg 24, D 78658 Zimmern
  6.  
  7.  
  8.  
  9.       ─══[  1 SYNOPSIS  ]══════════════════════════════════════════════─
  10.  
  11.  
  12.        This is  a simple  utility that will step through an polymorph
  13.        (MtE, TPE, SPE, G2, PS_MPC...) decryptor and decrypt the virus
  14.        it is attached to, then terminate before executing the virus.
  15.  
  16.  
  17.  
  18.       ─══[  2 ABOUT THE PROGRAM  ]═════════════════════════════════════─
  19.  
  20.  
  21.        It is useful if you have a (polymorph) encrypted virus and you
  22.        want to  find out what virus has infected it - just decrypt it
  23.        using DECOM,  then check the resulting file, looking after the
  24.        decryptor. This is a proto-type version, and is NOT IN ANY WAY
  25.        GUARANTEED! I  had only  released this program because to this
  26.        date nothing  else seems  to be  able to  do this  (apart from
  27.        TBCLEAN, which removes the virus!). This will allow anyone who
  28.        needs to  be able  to disinfect  or  to  evaluate  (polymorph)
  29.        encrypted viruses.  Afterwards you  can modify  the code  to -
  30.        instead of  saving the  result to  disk-  search  it  for  the
  31.        storage bytes, original SS:SP and CS:IP, or whatever is needed
  32.        for the  disinfection routine.  A  generic  disinfector  (RVK)
  33.        based on DECOM is also available...
  34.  
  35.        When used,  DECOM will  attempt to follow the execution of the
  36.        program until  the end  of the  decryptor. It will not execute
  37.        dangerous INT  calls,  and  will  terminate  them  if  one  is
  38.        encountered. It  also terminates  if DS and ES change, or if a
  39.        far call  or something else is encountered that will cause the
  40.        lost of  control over  the programs  execution. THIS  DOES NOT
  41.        ABSOLUTELY  GUARANTEE  SAFETY  WHEN  RUN!  While  I  have  not
  42.        encountered an polymorph encrypted file that it did not safely
  43.        decrypt, it  is quite  possible to  program such.  The  'true'
  44.        polymorph viruses I have tested DECOM on are:
  45.  
  46.            Alive:SPE
  47.            Argyle
  48.            Bosnia:TPE.1_2
  49.            Byway (Dir-2.TheHndV)
  50.            CoffeShop:MtE.0_90
  51.            CoffeShop:TPE.1_0
  52.            CoffeShop:TPE.1_3
  53.            Connie:DSME
  54.            Crazy_Chemist:SPE
  55.            Dedicated.A:MtE.0_90
  56.            Dedicated.B:MtE.0_90
  57.            Dedicated.CryptLab:MtE.0_90
  58.            Demo:DSCE
  59.            Demo:DSME
  60.            Demo:GCE
  61.            Demo:PME
  62.            Demo:SPE
  63.            Demo:TPE.1_4
  64.            EbbelWoi.QUX
  65.            Encroacher.A:MtE.0_90
  66.            Encroacher.B:MtE.0_90
  67.            Fear:MtE.0_90
  68.            Flip.2153.A
  69.            Flip.2153.B
  70.            Flip.2153.D
  71.            Flip.2153.E
  72.            Flip.2343
  73.            Flip.2365
  74.            GOL-Wanted
  75.            Gotcha.Pogue:MtE.0_90
  76.            Groove:MtE.0_90
  77.            Insufficient.A:MtE.0_90
  78.            Insufficient.B:MtE.0_90
  79.            Insufficient.C:MtE.0_90
  80.            King:SPE
  81.            Lame:DAME.0_91
  82.            Lame:HPE.0_90
  83.            Lame:HPE.0_91
  84.            Little:TPE.1_3
  85.            Ludwig.A:MtE.0_90
  86.            Ludwig.B:MtE.0_90
  87.            Ludwig.C:MtE.0_90
  88.            Natas.4730
  89.            Natas.4738
  90.            Natas.4744
  91.            Natas.4746
  92.            Natas.4748
  93.            Natas.4988
  94.            N8fall (the 4xxx versions, as well "Won't last", 57xx
  95.                 versions) - com files only...
  96.            One_Half.3744                 (fails sometimes)
  97.            One_Half.3755                 (fails sometimes)
  98.            Ontario.1024
  99.            PC_Weevil:MtE.0_90
  100.            Phoenix.1226
  101.            Phoenix.2000
  102.            Phoenix.Evil
  103.            Phoenix.Phoenix.A
  104.            Phoenix.Phoenix.B
  105.            Phoenix.Proud
  106.            SMEG:Pathogen                 (too complex for DECOM!)
  107.            SMEG:Trivial (Windows?)       (too complex for DECOM!)
  108.            Teacher:DSME
  109.            Tester:NED.1_00
  110.            Testfiles:TPE.1_0
  111.            Testfiles:TPE.1_4
  112.            Tremor (COM-Variant)
  113.            Trigger:DAME.0_90
  114.            Uruguay Family
  115.            V2P6
  116.            V2PX.1260
  117.            WordSwap.1503
  118.  
  119.        As well  as a  collection of  my own  MtE  &  TPE  test  files
  120.        (15000!) and  over 400  different encrypted  viruses (Cascade,
  121.        G2, PS-MPC,  ANNI-VCS, IVP,  VCL, etc.).  One possibility when
  122.        DECOM is not able to decrypt the code is:
  123.  
  124.         ■  the decryptor does not actually encrypt the code
  125.  
  126.         ■  the code is not encrypted in any way
  127.  
  128.         ■  anti-emulator code is found
  129.  
  130.         ■  the decryptor uses anti-debugging tricks, which DECOM is
  131.            not yet aware of
  132.  
  133.         ■  if there are "do nothing" loops like sometimes found in
  134.            the TPE 1.3/1.4 viruses. In this case use RVK!
  135.  
  136.        This generally  results in  DECOM printing  that  it  can  not
  137.        safely decrypt  it. If you got the hands on such a file please
  138.        send me it in order to improve DECOM.
  139.  
  140.  
  141.  
  142.  
  143.  
  144.       ─══[  3 LEGAL TERMS AND DISCLAIMER  ]════════════════════════════─
  145.  
  146.  
  147.        DECOM basically  has no  legal guarantee or warranty because I
  148.        do not  want to  get sued over it, and should be used "as is."
  149.        Here is the official disclaimer:
  150.  
  151.        DECOM alters  executable files  and DESTROYS them (that is why
  152.        YOU should  keep a  backup file).  Under no  circumstances may
  153.        Ralph Roth  ("author") be  held liable  or accountable for any
  154.        damage to  system files,  executable files, data files, or any
  155.        other system  or data  damage due  to use  or  misuse  of  his
  156.        program. The  author also may not be held accountable for loss
  157.        of profits  or for  any other  damages incurred  by the use or
  158.        misuse of  his program.  The author  has forewarned  any users
  159.        that damage  to files  may occur  with use  or misuse  of  his
  160.        program,  and   in  executing  the  program,  the  user  fully
  161.        understands these risks and this disclaimer.
  162.  
  163.  
  164.  
  165.       Greetings (and virus free time)
  166.  
  167.            Ralph Roth
  168.  
  169.  
  170.  
  171.        You can obtain the newest DECOM & RVK version from (please add
  172.        some money for disc and shipping!) - see ROSE_BBS.TXT
  173.  
  174.  
  175.  
  176.       ─══[  4 HISTORY  ]═══════════════════════════════════════════════─
  177.  
  178.  
  179.  
  180.       4.1 Version 0.00-0.92 (somewhere in 1990)
  181.  
  182.       Added routines  to handle  VCL, SPE,  G2, PS_MPC, DAME, TPE and
  183.       other encrypted  COM files.  Tested with  VCL, PS_MPC, G2, MtE,
  184.       EbbelWoi &  SPE viruses!  Added check  for EXE files, which are
  185.       (yet) not  supported (EXE-header).  Added a  simple  check  for
  186.       anti-debugging tricks. DECOM now checks first if the input file
  187.       exists before prompting for the target file.
  188.  
  189.  
  190.       4.2 Version 0.93
  191.  
  192.       I have received a few new MMIR viruses, which use the 'popular'
  193.       VSAFE killing  routine in  front of  the decrypting  routine to
  194.       throw TBSCAN's  heuristic scanner  off the  track.  Well,  this
  195.       routine throws  DECOM although off the track, so I have added a
  196.       routine to find and to SIMULATE this VSAFE killing routine! Was
  197.       not easy! ;-)
  198.  
  199.       Additionally some  MS-DOS Interrupt  functions (SET DTA...) are
  200.       now emulated, therefore DECOM __MAY__ clean an infected file!
  201.  
  202.  
  203.       4.3 Version 0.94
  204.  
  205.       Now DECOM  prompts you  only for a filename __IF__ the file has
  206.       been safely  decrypted! This  means although,  that you can now
  207.       overwrite the old file... DECOM no longer will make attempts to
  208.       clean a  file, because  a separate  program for this purpose is
  209.       now available: RVK.COM
  210.  
  211.  
  212.       4.4 Version 0.95-1.00
  213.  
  214.       More "Anti Debugger Code Handling", more code simulation. DECOM
  215.       can now  be invoked  via commandline  else you will be prompted
  216.       for a source file!
  217.  
  218.  
  219.       4.5 Version 1.01 (Nov. 1994)
  220.  
  221.       Added a  check for  a trick  to disable DECOM, which I found in
  222.       the Hexametricx.Eumel_3.x viruses.
  223.  
  224.  
  225.       4.6 Version 1.03 (Feb. 1995)
  226.  
  227.       Added some  minor anti-debugger tricks. Tested with over 50 new
  228.       viruses.
  229.  
  230.  
  231.       4.7 Version 1.10 (March 95)
  232.  
  233.       Added a software emulator that is able to emulate INT calls and
  234.       most anti debugger tricks without loosing control over the
  235.       program! DECOM can now handle almost all encrypted files,
  236.       except some special anti debugging code. Furthermore the
  237.       handling of infected files is now safer, more reliable and more
  238.       successful than ever before!
  239.  
  240.  
  241.       4.7 Version 1.11 (May 95)
  242.  
  243.       My FAX number has changed (new). Minor improvements to decrypt
  244.       more viruses!
  245.  
  246.       4.8 Version 1.12 (June 95)
  247.  
  248.       The program is now able to by-pass some IN/OUT commands. The
  249.       package now includes an alpha version of the heuristic scanner
  250.       "RPCATCH".
  251.  
  252.       4.9 Version 1.13 (August 95)
  253.  
  254.       Internal version. Not available in the public!
  255.  
  256.       4.10 Version 1.14 (December 95)
  257.  
  258.       Fixed a bug found when decrypting the Byway (Dir-2.TheHndV)
  259.       virus. Credits goes to Tarkan Yetiser, VDS Advanced Research
  260.       Group for pointing out this bug, as well as supplying me a
  261.       Byway sample.
  262.  
  263.       4.11 Version 1.15 (February 96)
  264.  
  265.       The code emulator can now handle the POP SS/POPF antidebugger
  266.       trick. Credits goes to L. Vrtik & J. Valky for pointing out
  267.       this trick, as well as supplying me sample code.
  268.  
  269.       4.12 Version 1.20 (March 96)
  270.  
  271.       Added the handling of 386++ commands. For this reason you will
  272.       need at least a 386 SX to run the program! The code emulator
  273.       can now handle another antidebugger trick. Credits goes to L.
  274.       Vrtik & J. Valky for pointing out this trick, as well as sup-
  275.       plying me sample code.
  276.  
  277.       4.13 Version 1.21 (March 96)
  278.  
  279.       The code emulator can now handle another antidebugger trick.
  280.       Credits goes to L. Vrtik & J. Valky for pointing out this
  281.       trick, as well as supplying me sample code. Added the "TBClean
  282.       Bug" from VLAD #6 to the emulator, as well as another
  283.       antidebugger trick found in the GOL-Wanted virus.
  284.  
  285.       4.14 Version 1.22 (April 96)
  286.  
  287.       The code emulator can now handle GS: and FS: segment override
  288.       anti debugging tricks. Credits goes to L. Vrtik & J. Valky for
  289.       pointing out this trick, as well as supplying me sample code.
  290.       Added the handling of protected mode debugging tricks, using
  291.       the CR and DR registers.
  292.  
  293.       4.15 Version 1.23 (July 96)
  294.  
  295.       The code emulator can now handle the PUSHFD/POPFD anti de-
  296.       bugging trick and other 32 bit anti debugger tricks. Credits
  297.       goes to Rand0m^X-Adi for pointing out this trick.
  298.  
  299.       4.16 Version 1.24 (December 96)
  300.  
  301.       Minor small bugfixes. Fixed some typos in the DOC. Added an
  302.       interrupt 3 emulator. Added code to handle anti-emulator code
  303.       found in the Grief.3584 and ANNI-VCS viruses. Now the program
  304.       displays the last IP Counter, the AX value and the opcode of
  305.       the latest instruction if the emulating process failed. This is
  306.       useful to find out why and where the emulation process has
  307.       been interfered.
  308.  
  309.  
  310.     ───────────────────────────────────────────────────────────────────
  311.  
  312.           Please excuse my English, it is not my native language!
  313.  
  314.  
  315.                                        ALL IMPROVEMENTS ALL WELCOMED!
  316.